////////////////////////////////////////////////////////////////////////////////////////////////

#include "MDLLoader.h"
#include <string>
#include <fstream>

////////////////////////////////////////////////////////////////////////////////////////////////

using namespace std;

////////////////////////////////////////////////////////////////////////////////////////////////

GLuint	createListFromMDL ( string filename )
{
	ifstream infile ( filename.c_str (), ios::in | ios::binary );
	if ( !infile.is_open () )
	{
		DEBUG_OUT(("Nu se deschide fisierul (%s)!\n",filename.c_str()));
		return 0;
	}
		
	GLuint id = glGenLists(1);
	
	if(!id)
	{
		//eroare
		return 0;
	}
	
	int patches;
	infile >> patches;
	if(patches<=0)
	{
		//eroare
		glDeleteLists(id, 1);
		return 0;
	}
	
	glNewList(id, GL_COMPILE);
	
	GLfloat vert[15];
	
	for(int i=0; i<patches; i++)
	{
		glBegin(GL_TRIANGLES);
		for(int v=0;v<15;v++)
		{
			infile >> vert[v];
		}
		if(true)
		{
			glColor3f(vert[9],vert[10],vert[11]);
		}
		else
		{
			glColor3f(vert[12],vert[13],vert[14]);
		}
		//for(int v=2;v>=0;v--)
		for(int v=0;v<3;v++)
		{
			glVertex3f(vert[v*3],vert[v*3 +1],vert[v*3 +2]);
		}
		glEnd();
	}
	
	glEndList();
	
	infile.close();

	return id;
}

////////////////////////////////////////////////////////////////////////////////////////////////